package com.chunxuan.langquan.dao.http;


import com.chunxuan.langquan.base.BaseResult2;
import com.chunxuan.langquan.dao.bean.CarProductEntity;
import com.chunxuan.langquan.dao.bean.CategoryEntity;
import com.chunxuan.langquan.dao.bean.CouponBean;
import com.chunxuan.langquan.dao.bean.CourseBean;
import com.chunxuan.langquan.dao.bean.CourseCategoryEntity;
import com.chunxuan.langquan.dao.bean.CourseDetail;
import com.chunxuan.langquan.dao.bean.CourseList;
import com.chunxuan.langquan.dao.bean.DeliveryEntity;
import com.chunxuan.langquan.dao.bean.FreightPrice;
import com.chunxuan.langquan.dao.bean.GradeInfo;
import com.chunxuan.langquan.dao.bean.ImageUrl;
import com.chunxuan.langquan.dao.bean.IsShowBean;
import com.chunxuan.langquan.dao.bean.LqProvinceBean;
import com.chunxuan.langquan.dao.bean.NewUserInfo;
import com.chunxuan.langquan.dao.bean.OrderEntity;
import com.chunxuan.langquan.dao.bean.OrderInfo;
import com.chunxuan.langquan.dao.bean.ProductDetailEntity;
import com.chunxuan.langquan.dao.bean.ProductEntity;
import com.chunxuan.langquan.dao.bean.PwdLoginData;
import com.chunxuan.langquan.dao.bean.ReceiptAddressInfo;
import com.chunxuan.langquan.dao.bean.Subject;
import com.chunxuan.langquan.dao.bean.UploadImageUrl;
import com.chunxuan.langquan.dao.bean.UserInfo;
import com.chunxuan.langquan.dao.bean.VersionInfo;
import com.chunxuan.langquan.dao.bean.WxData;
import com.chunxuan.langquan.dao.bean.WxPayEntity;

import java.util.List;

import io.reactivex.Observable;
import okhttp3.MultipartBody;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Header;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;

public interface ApiService {
//    //融云获取token接口
//    @FormUrlEncoded
//    @POST("getToken.json")
//    Observable<RongToken> reqRongToken(
//            @Header("App-Key") String appKey,
//            @Header("Nonce") String Nonce,
//            @Header("Timestamp") String Timestamp,
//            @Header("Signature") String Signature,
//            @Field("userId") String userId,
//            @Field("name") String name,
//            @Field("portraitUri") String portraitUri);
//
//    // chat/getUserInfo 获取用户信息
//    @GET("chat/getUserInfo")
//    Observable<BaseResult2<RongUser>> reqUserInfo(@Query("accountId") String accountId);
//
//    @Streaming
//    @GET
//    Observable<ResponseBody> downloadApk(@Url String url);

//    // retrofit
//    @Streaming
//    @GET
//    Call<ResponseBody> download(@Url String url);
//
//    @GET("member/address/api/list")
//    Observable<BaseResult2<List<Address>>> addressList(@Query("memberId") String memberId);
//
//    @POST("couponHistory/app/unLock")
//    Observable<BaseResult2> unLock(@Body RequestBody body);


    //-------------------------------------------------------------------------------------

    // 获取验证码
    @FormUrlEncoded
    @POST("api/sms/send")
    Observable<BaseResult2> getMsgCode(@Field("mobile") String mobile, @Field("event") String event);

    // 隐私政策
    @FormUrlEncoded
    @POST("api/index/getPrivacy")
    Observable<BaseResult2> privacyAgree(@Field("type") String type);

    // 用户协议
    @FormUrlEncoded
    @POST("api/index/getUserAgreement")
    Observable<BaseResult2> getUserAgreement(@Field("type") String type);

    // 使用帮助
    @FormUrlEncoded
    @POST("api/index/getUsingHelp")
    Observable<BaseResult2> usingHelp(@Field("type") String type);

    // 特别声明
    @FormUrlEncoded
    @POST("api/index/getDeclaration")
    Observable<BaseResult2> declaration(@Field("type") String type);

    //
    // 帐号密码注册
    @FormUrlEncoded
    @POST("api/user/register")
    Observable<BaseResult2<PwdLoginData>> register(@Field("mobile") String mobile, @Field("password") String password, @Field("confirm_password") String confirm_password, @Field("code") String code);

    // 绑定手机号
    @FormUrlEncoded
    @POST("api/user/mobilebind")
    Observable<BaseResult2> bindMobile(@Header("token") String token,@Field("mobile") String mobile, @Field("captcha") String captcha,
                                       @Field("password") String password, @Field("confirm_password") String confirm_password);

    //
    // 重置密码
    @FormUrlEncoded
    @POST("api/user/resetPwd")
    Observable<BaseResult2> resetPwd(@Field("mobile") String mobile, @Field("new_password") String new_password, @Field("confirm_new_password") String confirm_new_password, @Field("captcha") String captcha);

    //
    // 帐号密码登录  <List<Login>>  {id:55}  登录会返回两种格式  code=4001时返回id,用来完善信息
    @FormUrlEncoded
    @POST("api/user/login")
    Observable<BaseResult2<PwdLoginData>> login(@Field("mobile") String mobile, @Field("password") String password);

    //
//    // 微信登录  http://yunjianyan.ilicloud.cn/api/appLogin
    @FormUrlEncoded
    @POST("api/user/thirdByWeiXin")
    Observable<BaseResult2<WxData>> wxLogin(@Field("access_token") String access_token, @Field("refresh_token") String refresh_token,
                                            @Field("expires_in") String expires_in, @Field("openid") String openid, @Field("nickName") String nickName,
                                            @Field("avatar") String avatar);

    // QQ登录
    @FormUrlEncoded
    @POST("api/user/thirdByQQ")
    Observable<BaseResult2<WxData>> qqLogin(@Field("access_token") String access_token, @Field("refresh_token") String refresh_token,
                                            @Field("expires_in") String expires_in, @Field("openid") String openid, @Field("nickName") String nickName,
                                            @Field("avatar") String avatar);

    @FormUrlEncoded
    @POST("api/course/index")
    Observable<BaseResult2<List<CourseBean>>> courseCenter(@Header("token") String token, @Field("type") String type);

    @FormUrlEncoded
    @POST("api/course/class")
    Observable<BaseResult2<List<Subject>>> subjectPage(@Header("token") String token, @Field("subject_category_id") int subject_category_id);

    @FormUrlEncoded
    @POST("api/user/info")
    Observable<BaseResult2<UserInfo>> userInfo(@Header("token") String token, @Field("type") String type);

    //上传base64格式的图片
    @FormUrlEncoded
    @POST("api/upload/uploadBase64")
    Observable<BaseResult2<UploadImageUrl>> uploadBase64(@Header("token") String token, @Field("base64_img") String base64_img);

    //编辑用户信息
    @FormUrlEncoded
    @POST("api/user/edit")
    Observable<BaseResult2> editUserNickname(@Header("token") String token, @Field("nickname") String nickname);

    @FormUrlEncoded
    @POST("api/user/edit")
    Observable<BaseResult2> editGender(@Header("token") String token, @Field("gender") int gender);

    @FormUrlEncoded
    @POST("api/user/edit")
    Observable<BaseResult2> editArea(@Header("token") String token, @Field("prov") String prov, @Field("city") String city, @Field("area") String area);

    @FormUrlEncoded
    @POST("api/category/getGrade")
    Observable<BaseResult2<List<GradeInfo>>> getGradeInfo(@Header("token") String token, @Field("type") String type);

    @FormUrlEncoded
    @POST("api/index/showThirdLogin")
    Observable<BaseResult2<IsShowBean>> isShow(@Field("type") String type);

    //
    @FormUrlEncoded
    @POST("api/user/edit")
    Observable<BaseResult2> editGrade(@Header("token") String token, @Field("grade_category_id") int grade_category_id);

    @FormUrlEncoded
    @POST("api/user/edit")
    Observable<BaseResult2> editGradeAndCity(@Header("token") String token, @Field("grade_category_id") int grade_category_id, @Field("prov") String prov, @Field("city") String city, @Field("area") String area);

    @FormUrlEncoded
    @POST("api/user/edit")
    Observable<BaseResult2> editHeader(@Header("token") String token, @Field("avatar") String avatar);

    //获取收货地址列表
    @FormUrlEncoded
    @POST("addons/unishop/address/all")
    Observable<BaseResult2<List<ReceiptAddressInfo>>> getAddressList(@Header("token") String token, @Field("type") String type);

    //获取收货方式
    @FormUrlEncoded
    @POST("addons/unishop/order/getDelivery")
    Observable<BaseResult2<List<DeliveryEntity>>> getDelivery(@Header("token") String token, @Field("city_id") String city_id);

    //获取邮费
    @FormUrlEncoded
    @POST("addons/unishop/order/getDeliveryPrice")
    Observable<BaseResult2<FreightPrice>> getFreightPrice(@Header("token") String token, @Field("city_id") String city_id,@Field("delivery_id") String delivery_id,
                                                          @Field("total_number")String total_number);

    //收货地址—编辑
    @FormUrlEncoded
    @POST("addons/unishop/address/edit")
    Observable<BaseResult2> confirmAddress(@Header("token") String token, @Field("id") int id, @Field("name") String name,
                                           @Field("mobile") String mobile, @Field("province_id") int province_id, @Field("city_id") int city_id,
                                           @Field("area_id") int area_id, @Field("address") String address, @Field("is_default") int is_default);

    //收货地址—添加
    @FormUrlEncoded
    @POST("addons/unishop/address/add")
    Observable<BaseResult2> addAddress(@Header("token") String token, @Field("name") String name,
                                       @Field("mobile") String mobile, @Field("province_id") int province_id, @Field("city_id") int city_id,
                                       @Field("area_id") int area_id, @Field("address") String address, @Field("is_default") int is_default);

    //收货地址—删除
    @FormUrlEncoded
    @POST("addons/unishop/address/delete")
    Observable<BaseResult2> deleteAddress(@Header("token") String token, @Field("id") int id);

    //取消订单
    @FormUrlEncoded
    @POST("addons/unishop/order/cancel")
    Observable<BaseResult2> cancelOrder(@Header("token") String token, @Field("order_id") String order_id);

    //申请退款
    @FormUrlEncoded
    @POST("addons/unishop/order/refund")
    Observable<BaseResult2> refund(@Header("token") String token, @Field("order_id") String order_id, @Field("amount") String amount, @Field("order_product_id") String order_product_id);

    //退出登录
    @FormUrlEncoded
    @POST("api/user/logout")
    Observable<BaseResult2> logout(@Header("token") String token, @Field("type") String type);

    //注销账号
    @FormUrlEncoded
    @POST("api/user/logOff")
    Observable<BaseResult2> logoff(@Header("token") String token, @Field("type") String type);

    //检查新版本
    @FormUrlEncoded
    @POST("api/index/checkUpgrade")
    Observable<BaseResult2<VersionInfo>> checkUpgrade(@Header("token") String token, @Field("platform") String platform, @Field("version") String version);

    //获取省列表
    @FormUrlEncoded
    @POST("api/area/getProvList")
    Observable<BaseResult2<List<LqProvinceBean>>> getProvList(@Header("token") String token, @Field("type") String type);

    //根据省id获取城市列表
    @FormUrlEncoded
    @POST("api/area/getCityByProvId")
    Observable<BaseResult2<List<LqProvinceBean>>> getCityByProvId(@Header("token") String token, @Field("prov_id") int prov_id);

    //根据城市id获取区域信息
    @FormUrlEncoded
    @POST("api/area/getAreaByCityId")
    Observable<BaseResult2<List<LqProvinceBean>>> getAreaByCityId(@Header("token") String token, @Field("city_id") int city_id);

    //获取优惠券列表
    @FormUrlEncoded
    @POST("api/user/couponList")
    Observable<BaseResult2<List<CouponBean>>> getCouponList(@Header("token") String token, @Field("type") String type);

    //查询用户观看记录
    @FormUrlEncoded
    @POST("api/course/getRecord")
    Observable<BaseResult2<List<CourseDetail.CourseInfo>>> getCourseRecord(@Header("token") String token, @Field("type") String type);

    //获取订单列表-type  0=全部（默认）,1=待付款,2=待发货,3=待收货,4=待评价,5=售后
    @FormUrlEncoded
    @POST("addons/unishop/order/getOrders")
    Observable<BaseResult2<List<OrderInfo>>> getOrders(@Header("token") String token, @Field("type") int type, @Field("page") int page, @Field("pagesize") int pagesize);

    //    // 验证码登录  http://yunjianyan.ilicloud.cn/api/codeLogin
//    @FormUrlEncoded
//    @POST("api/codeLogin")
//    Observable<BaseResult2> loginByCode(@Field("phone") String phone, @Field("code") String code, @Field("type") String type);
//
//    // 获取当前用户信息 type 用户角色(1医生,2专家,3物流,4患者)
//    @FormUrlEncoded
//    @POST("api/me")
//    Observable<BaseResult2<List<Doctor>>> getUserInfo(@Header("Authorization") String Authorization, @Field("type") String type);
//
//    // 首页banner图列表  是否首页显示（0否，1是）
//    @GET("api/bannerList")
//    Observable<BaseResult2<List<Banner>>> reqHomeBannerList(@Query("genre") String genre);
//
//    // 首页项目列表  recommend 是否首页显示（0否，1是）
//    @GET("api/projectList")
//    Observable<BaseResult2<List<ItemSet>>> reqHomeItemList(@Query("recommend") String recommend);
//
//    // 项目列表 根据项目分类查询项目 /api/projectList  rec 是否首页显示（0否，1是） type_id 项目分类
//    @GET("api/projectList")
//    Observable<BaseResult2<List<ItemSet>>> reqItemList(@Query("recommend") String recommend, @Query("type_id") String type_id);
//
//    // 首页特色套餐  recommend 是否首页显示（0否，1是）
//    @GET("api/comboList")
//    Observable<BaseResult2<List<ItemSet>>> reqHomeSetList(@Query("recommend") String recommend);
//
//    // 文章列表  recommend 是否首页显示（0否，1是）
//    @GET("api/articleList")
//    Observable<BaseResult2<List<Article>>> reqArticleList(@Query("recommend") String recommend
//            , @Query("page") int page, @Query("pageSize") int pageSize);
//
//    // 患者模块上方获取用户信息
//    @GET("api/userInfo")
//    Observable<BaseResult2<PatientUserInfo>> reqPatientTopUserInfo(@Header("Authorization") String Authorization);
//
//    // 获取近期患者列表  是否固定死（只显示前几条，没有分页），1固定，0是否（默认0）
//    @GET("api/getTestOrderUserList")
//    Observable<BaseResult2<List<Patient>>> reqRecentPatientList(@Header("Authorization") String Authorization
//            , @Query("page") int page, @Query("pageSize") int pageSize, @Query("now") int now);
//
//    // 我的积分
//    @GET("api/getUserScore")
//    Observable<BaseResult2<List<Score>>> reqUserScore(@Header("Authorization") String Authorization, @Query("page") int page, @Query("pageSize") int pageSize);
//
//    // 消息列表
//    @POST("api/message")
//    Observable<BaseResult2<List<Msg>>> reqMsgList(@Header("Authorization") String Authorization);
//
//    // 预约时间
//    @FormUrlEncoded
//    @POST("api/time")
//    Observable<BaseResult2<List<OrderDate>>> reqDateList(@Field("time") String time);
//
//    // 预约时间2
//    @FormUrlEncoded
//    @POST("api/getTime")
//    Observable<BaseResult2<List<OrderDate>>> reqDateList2(@Field("time") String time);
//
//    // 机构患者列表 api/patientList
//    @FormUrlEncoded
//    @POST("api/patientList")
//    Observable<BaseResult2<List<Patient>>> reqPatientListAgent(@Header("Authorization") String Authorization, @Field("time") String time);
//
//    // 获取常规项目分类 http://yunjianyan.ilicloud.cn/api/getRoutine
//    @FormUrlEncoded
//    @POST("api/getRoutine")
//    Observable<BaseResult2<List<ItemSet>>> reqComItemCategory(@Header("Authorization") String Authorization, @Field("time") String time);
//
//    // 获取项目分类 http://yunjianyan.ilicloud.cn/api/getProjectType
//    @FormUrlEncoded
//    @POST("api/getRoutine")
//    Observable<BaseResult2<List<ItemSet>>> reqAllItemCategory(@Header("Authorization") String Authorization, @Field("time") String time);
//
//    // 预约下单获取套餐对应的项目信息 http://yunjianyan.ilicloud.cn/api/getComboEctype
//
//
//    // 根据分单id获取样本和耗材信息 http://yunjianyan.ilicloud.cn/api/getSubmenu
////    @FormUrlEncoded
////    @POST("api/getSubmenu")
////    Observable<BaseResult2<List<SampleAndConsume>>> reqSampleAndConsumeList(@Field("subId[0]") String subId);
//
//    // 根据分单id获取样本和耗材信息 http://yunjianyan.ilicloud.cn/api/getSubmenu
//    @FormUrlEncoded
//    @POST("api/getSubmenu")
//    Observable<BaseResult2<List<SampleAndConsume>>> reqSampleAndConsumeList(@FieldMap Map<String, String> submenu);
//
//    @POST("api/getSubmenu")
//    Observable<BaseResult2<List<SampleAndConsume>>> reqSampleAndConsumeList2(@Body RequestBody body);
//
//    // 确定新增预约订单 http://yunjianyan.ilicloud.cn/api/addTestOrder
//    @FormUrlEncoded
//    @POST("api/addTestOrder")
//    Observable<BaseResult2<OrderSuccessInfo>> reqSubmitPlaceOrder(
//            @Field("test") String test, @Header("Authorization") String Authorization, @Field("combo") String combo
//            , @Field("project") String project, @Field("submenu") String submenu, @Field("count") String count
//            , @Field("sid") String sid, @Field("samp_time") String samp_time, @Field("money") String money
//            , @Field("price") String price, @Field("time") String time, @Field("freight") String freight
//            , @Field("remark") String remark, @Field("diagnose") String diagnose, @Field("discount") String discount);
//
//    // 确定新增预约订单 http://yunjianyan.ilicloud.cn/api/addTestOrder
//    @FormUrlEncoded
//    @POST("api/addTestOrder")
//    Observable<BaseResult3> reqSubmitPlaceOrder2(
//            @Field("test") String test, @Header("Authorization") String Authorization, @FieldMap Map<String, String> combo
//            , @FieldMap Map<String, String> project, @FieldMap Map<String, String> submenu, @Field("count") String count
//            , @Field("sid") String sid, @Field("samp_time") String samp_time, @Field("money") String money
//            , @Field("price") String price, @Field("time") String time, @Field("freight") String freight
//            , @Field("remark") String remark, @Field("diagnose") String diagnose, @Field("discount") String discount);
//
//    // 预约列表 http://yunjianyan.ilicloud.cn/api/getOrderList
//    @FormUrlEncoded
//    @POST("api/getOrderList")
//    Observable<BaseResult2<List<Order>>> reqOrderList(@Header("Authorization") String Authorization, @Field("name") String name
//            , @Field("page") int page, @Field("pageSize") int pageSize, @Field("time") String time);
//
//    // 获取病史列表 http://yunjianyan.ilicloud.cn/api/getMedicalList
//    @FormUrlEncoded
//    @POST("api/getMedicalList")
//    Observable<BaseResult2<List<History>>> reqMedicalHistoryList(@Field("subId") String subId);
//
//    // 商城-获取商品分类 api/getClassify
//    @GET("api/getClassify")
//    Observable<BaseResult2<List<Category>>> reqMallCategoryList(@Header("Authorization") String Authorization, @Query("hehe") String hehe);
//
//    // 商城-商品列表 order 排序（1价格倒序，2价格正序，默认最新）
//    @GET("api/getGoodsList")
//    Observable<BaseResult2<List<Product>>> reqProductList(@Query("page") int page, @Query("pageSize") int pageSize
//            , @Query("order") String order, @Query("price") String price, @Query("classify_id") String classify_id);
//
//    // 获取商品详情
//    @GET("api/getGoodsDetail")
//    Observable<BaseResult2<Product>> reqProductDetail(@Query("id") String id);
//
//    // /api/addPatientUser 添加患者，信息录入
//    @FormUrlEncoded
//    @POST("api/addPatientUser")
//    Observable<BaseResult2> reqAddPatient(@Header("Authorization") String Authorization, @Field("name") String name
//            , @Field("phone") String phone, @Field("sex") String sex, @Field("birth") String birth
//            , @Field("identity") String identity, @Field("picture") String picture, @Field("blood") String blood
//            , @Field("medical") String medicalId, @Field("remark") String remark);
//
//    // 获取病史列表 http://yunjianyan.ilicloud.cn/api/getMedicalList
//    @GET("api/getMedicalList")
//    Observable<BaseResult2<List<History>>> reqMedicalHistoryList();
//
//    // 图片上传 http://yunjianyan.ilicloud.cn/api/upload
    @POST("api/upload")
    Observable<BaseResult2<List<ImageUrl>>> reqUploadImg(@Body MultipartBody multipartBody);

    @Multipart
    @POST("api/upload")
    Observable<BaseResult2<List<ImageUrl>>> reqUploadImg(@Part MultipartBody.Part picture);
//
//    // 搜索项目 http://yunjianyan.ilicloud.cn/api/searchProject  type 1 项目,2 套餐 (可为空)
//    @FormUrlEncoded
//    @POST("api/searchProject")
//    Observable<BaseResult2<List<ItemSet>>> reqSearchItemList(@Field("name") String name, @Field("type") String type);
//
//    // 搜索套餐 http://yunjianyan.ilicloud.cn/api/searchProject  type 1 项目,2 套餐 (可为空)
//    @FormUrlEncoded
//    @POST("api/searchProject")
//    Observable<BaseResult2<List<ItemSet>>> reqSearchSetList(@Field("name") String name, @Field("type") String type);
//
//    // 项目分类 http://yunjianyan.ilicloud.cn/api/getProjectType
//    @FormUrlEncoded
//    @POST("api/getProjectType")
//    Observable<BaseResult2<List<ItemType>>> reqItemTypeList(@Field("name") String name);
//
//    // 我的订单 http://yunjianyan.ilicloud.cn/api/getOrder
//    @FormUrlEncoded
//    @POST("api/getOrder")
//    Observable<BaseResult2<List<Order>>> reqMyOrderList(@Header("Authorization") String Authorization
//            , @Field("type") String type, @Field("page") int page, @Field("pageSize") int pageSize, @Field("time") String time, @Field("name") String name);
//
//    // 专家端我的信息 /api/userInfo
//    @GET("api/userInfo")
//    Observable<BaseResult2<ExpertUser>> reqUserInfo(@Header("Authorization") String Authorization);
//
//    // 我的诊所 /api/getOrganization
//    @GET("api/getOrganization")
//    Observable<BaseResult2<Clinic>> reqMyClinic(@Header("Authorization") String Authorization, @Query("org_id") String org_id);
//
//    // 我的诊所医生  /api/getDoctor
//    @GET("api/getDoctor")
//    Observable<BaseResult2<List<Doctor>>> reqMyClinicDoctorList(@Header("Authorization") String Authorization, @Query("org_id") String org_id);
//
//    // 创建医生帐号 http://yunjianyan.ilicloud.cn/api/doctor
//    @FormUrlEncoded
//    @POST("api/doctor")
//    Observable<BaseResult2> reqAddDoctor(@Header("Authorization") String Authorization
//            , @Field("picture") String picture, @Field("password") String password
//            , @Field("name") String name, @Field("sex") String sex, @Field("identity") String identity
//            , @Field("phone") String phone, @Field("year") String year);
//
//    // 删除医生  /api/deleteDoctor
//    @DELETE("api/deleteDoctor")
//    Observable<BaseResult2> reqDelDoctor(@Header("Authorization") String Authorization, @Query("doctor_id") String doctor_id);
//
//    // 我的机构运费券 http://yunjianyan.ilicloud.cn/api/getDiscountList
//    @FormUrlEncoded
//    @POST("api/getDiscountList")
//    Observable<BaseResult2<List<Coupon>>> reqMyCouponList(@Header("Authorization") String Authorization, @Field("type") String type);
//
//    // 我的收入 /api/myIncome
//    @GET("api/myIncome")
//    Observable<BaseResult2<List<Income>>> reqMyIncomeList(@Header("Authorization") String Authorization
//            , @Query("page") int page, @Query("pageSize") int pageSize
//            , @Query("start_time") String start_time, @Query("end_time") String end_time);
//
//    // 获取适应人群 /api/getCrowd
//    @GET("api/getCrowd")
//    Observable<BaseResult2<List>> reqCrowdList(@Header("Authorization") String Authorization, @Query("hehe") String hehe);
//
//    // 获取生活习惯 getHabit
//    @GET("api/getHabit")
//    Observable<BaseResult2<List<Crowd>>> reqHabitList(@Header("Authorization") String Authorization, @Query("hehe") String hehe);
//
//    // 获取检验项目列表 根据习惯 getProjectList
//    @GET("api/getProjectList")
//    Observable<BaseResult2<List<ItemSet>>> reqItemListByHabit(@Query("habit[]") String[] habit, @Query("adapt") int adapt
//            , @Query("type_id") String type_id, @Query("page") int page, @Query("pageSize") int pageSize);
//
//    // 获取疾病分类 getIllnessType
//    @GET("api/getIllnessType")
//    Observable<BaseResult2<List<SickType>>> reqSickTypeList(@Header("Authorization") String Auth, @Query("he") String he);
//
//    // 获取疾病列表 http://ydt.lstranger.cn/api/getIllnessList
//    @GET("api/getIllnessList")
//    Observable<BaseResult2<List<Sick>>> reqSickList(@Query("type") String type);
//
//    // 意见反馈 createCouple
//    @FormUrlEncoded
//    @POST("api/createCouple")
//    Observable<BaseResult2> reqFeedback(@Header("Authorization") String Authorization, @Field("info") String info);
//
//    // 更换手机号 http://yunjianyan.ilicloud.cn/api/mobile
//    @FormUrlEncoded
//    @POST("api/mobile")
//    Observable<BaseResult2> reqChangePhone(@Header("Authorization") String Authorization
//            , @Field("phone") String phone, @Field("code") String code);
//
//    // 忘记或修改密码 http://yunjianyan.ilicloud.cn/api/forget
//    @FormUrlEncoded
//    @POST("api/forget")
//    Observable<BaseResult2> reqChangePwd(@Header("Authorization") String Authorization
//            , @Field("phone") String phone, @Field("code") String code, @Field("password") String password);
//
//    // 疾病详情 http://ydt.lstranger.cn/api/getIllnessDetail
//    @GET("api/getIllnessDetail")
//    Observable<BaseResult2<SickDetail>> reqSickDetail(@Query("id") String id);
//
//    // 充值 /api/recharge
//    @FormUrlEncoded
//    @POST("api/recharge")
//    Observable<BaseResult2> reqRechargeAli(@Header("Authorization") String Authorization
//            , @Field("money") double money, @Field("pay_type") String pay_type);
//
//    // 充值 /api/recharge
//    @FormUrlEncoded
//    @POST("api/recharge")
//    Observable<BaseResult2<WxPayInfo>> reqRechargeWx(@Header("Authorization") String Authorization
//            , @Field("money") double money, @Field("pay_type") String pay_type);
//
//    // 获取特检数据 今日检验? /api/testOrderList  now 1 获取当天数据 expert 0  未解读 1 解读
//    @GET("api/testOrderList")
//    Observable<BaseResult2<List<TodayTest>>> reqtestOrderList(@Header("Authorization") String Authorization
//            , @Query("page") int page, @Query("pageSize") int pageSize, @Query("patient_id") String patient_id
//            , @Query("status") String status, @Query("now") String now, @Query("expert") String expert);
//
//    // 获取患者信息 getPatientInfo
//    @GET("api/getPatientInfo")
//    Observable<BaseResult2<PatientDetail>> reqPatientInfo(@Header("Authorization") String Authorization, @Query("id") String id);
//
//    // 项目信息详情(患者详情页面,检验历史) /api/getProductPatientInfo TestHistory
//    @GET("api/getProductPatientInfo")
//    Observable<BaseResult2<ProductPatientInfo>> reqProductPatientInfo(@Header("Authorization") String Authorization, @Query("id") String id);
//
//    // 项目订单信息 /api/getProductOrderList
//    @GET("api/getProductOrderList")
//    Observable<BaseResult2<List<Test>>> reqProductOrderList(@Header("Authorization") String Authorization, @Query("id") String id);
//
//    // 创建机构和完善负责人信息 http://yunjianyan.ilicloud.cn/api/principal
//    @FormUrlEncoded
//    @POST("api/principal")
//    Observable<BaseResult2> reqRealAuthAgent(@Field("id") String id, @Field("picture") String picture
//            , @Field("sex") String sex, @Field("name") String name, @Field("identity") String identity
//            , @Field("organization") String organization, @Field("org_type") String org_type, @Field("licence") String licence
//            , @Field("area") String area, @Field("address") String address, @Field("tel") String tel);
//
//    // 获取报告列表 http://yunjianyan.ilicloud.cn/api/getReportLists
//    @FormUrlEncoded
//    @POST("api/getReportLists")
//    Observable<BaseResult2<List<Report>>> reqReportList(@Header("Authorization") String Authorization, @Field("type") String type,
//                                                        @Field("page") int page, @Field("pageSize") int pageSize, @Field("time") String time, @Field("name") String name);
//
//    // 检验状态 http://yunjianyan.ilicloud.cn/api/getInspectList
//    @FormUrlEncoded
//    @POST("api/getInspectList")
//    Observable<BaseResult2<List<TestStatus>>> reqTestStatusList(@Header("Authorization") String Authorization, @Field("type") String type);
//
//    // 报告详情 http://yunjianyan.ilicloud.cn/api/getReportInfo
//
//    // 专家解读列表 /api/getDoctorReportList
//    @GET("api/getDoctorReportList")
//    Observable<BaseResult2<List<ExpertExplain>>> reqExpertReadList(@Header("Authorization") String Authorization
//            , @Query("status") String status, @Query("page") int page, @Query("pageSize") int pageSize);
//
//    // 发起预约下单支付 http://yunjianyan.ilicloud.cn/api/editTestOrder 支付宝
//    @FormUrlEncoded
//    @POST("api/editTestOrder")
//    Observable<BaseResult2> reqPlaceOrderPayAli(@Header("Authorization") String Authorization
//            , @Field("order_no") String order_no, @Field("pay_type") String pay_type);
//
//    // 发起预约下单支付 http://yunjianyan.ilicloud.cn/api/editTestOrder 微信
//    @FormUrlEncoded
//    @POST("api/editTestOrder")
//    Observable<BaseResult2<WxPayInfo>> reqPlaceOrderPayWx(@Header("Authorization") String Authorization
//            , @Field("order_no") String order_no, @Field("pay_type") String pay_type);
//
//    // 发起预约下单支付 http://yunjianyan.ilicloud.cn/api/editTestOrder 银联
//    @FormUrlEncoded
//    @POST("api/editTestOrder")
//    Observable<BaseResult2<UPayInfo>> reqPlaceOrderPayUpay(@Header("Authorization") String Authorization
//            , @Field("order_no") String order_no, @Field("pay_type") String pay_type);
//
//    // 发起预约下单支付 http://yunjianyan.ilicloud.cn/api/editTestOrder 余额
//    @FormUrlEncoded
//    @POST("api/editTestOrder")
//    Observable<BaseResult2> reqPlaceOrderPayBalance(@Header("Authorization") String Authorization
//            , @Field("order_no") String order_no, @Field("pay_type") String pay_type);
//
//    // 专家解读支付 /api/payReadOrder 支付宝
//    @GET("api/payReadOrder")
//    Observable<BaseResult2> reqExpertOrderPayAli(@Header("Authorization") String Authorization
//            , @Query("order_no") String order_no, @Query("pay_type") String pay_type);
//
//    // 专家解读支付  /api/payReadOrder 微信
//    @GET("api/payReadOrder")
//    Observable<BaseResult2<WxPayInfo>> reqExpertOrderPayWx(@Header("Authorization") String Authorization
//            , @Query("order_no") String order_no, @Query("pay_type") String pay_type);
//
//    // 专家解读支付  /api/payReadOrder 银联
//    @GET("api/payReadOrder")
//    Observable<BaseResult2<UPayInfo>> reqExpertOrderPayUpay(@Header("Authorization") String Authorization
//            , @Query("order_no") String order_no, @Query("pay_type") String pay_type);
//
//    // 专家解读支付  /api/payReadOrder 余额
//    @GET("api/payReadOrder")
//    Observable<BaseResult2> reqExpertOrderPayBalance(@Header("Authorization") String Authorization
//            , @Query("order_no") String order_no, @Query("pay_type") String pay_type);
//
//    // 商城支付 商城发起支付 /api/shopOrderPay 支付宝
//    @GET("api/shopOrderPay")
//    Observable<BaseResult2> reqshopOrderPayAli(@Header("Authorization") String Authorization
//            , @Query("order_no") String order_no, @Query("pay_type") String pay_type);
//
//    // 商城支付 商城发起支付 /api/shopOrderPay 微信
//    @GET("api/shopOrderPay")
//    Observable<BaseResult2<WxPayInfo>> reqshopOrderPayWx(@Header("Authorization") String Authorization
//            , @Query("order_no") String order_no, @Query("pay_type") String pay_type);
//
//    // 商城支付 商城发起支付 /api/shopOrderPay 银联
//    @GET("api/shopOrderPay")
//    Observable<BaseResult2<UPayInfo>> reqshopOrderPayUpay(@Header("Authorization") String Authorization
//            , @Query("order_no") String order_no, @Query("pay_type") String pay_type);
//
//    // 商城支付 商城发起支付 /api/shopOrderPay 余额
//    @GET("api/shopOrderPay")
//    Observable<BaseResult2> reqshopOrderPayBalance(@Header("Authorization") String Authorization
//            , @Query("order_no") String order_no, @Query("pay_type") String pay_type);
//
//    // 项目详情 /api/projectDetail/1
//    @GET("api/projectDetail/{id}")
//    Observable<BaseResult2<ItemSetDetail>> reqItemSetDetail(@Path("id") String id);
//
//    // 套餐详情 /api/comboDetail/1
//    @GET("api/comboDetail/{id}")
//    Observable<BaseResult2<SetDetail>> reqSetDetail(@Path("id") String id);
//
//    // 获取隐私或声明 http://yunjianyan.ilicloud.cn/api/privacy
//    @FormUrlEncoded
//    @POST("api/privacy")
//    Observable<BaseResult2<List<Privacy>>> reqPrivacy(@Field("type") String type);
//
//    // 文章详情 /api/articleDetail/{id}
//    @GET("api/articleDetail/{id}")
//    Observable<BaseResult2<ArticleDetail>> reqArticleDetail(@Path("id") String id);
//
//    // 商品订单 我的商品 /api/getShopOrderList
//    @GET("api/getShopOrderList")
//    Observable<BaseResult2<List<MyProOrder>>> reqMyProOrderList(@Header("Authorization") String Authorization
//            , @Query("page") int page, @Query("pageSize") int pageSize, @Query("status") String status);
//
//    // ai解读 http://yunjianyan.ilicloud.cn/api/searchAi
//    @FormUrlEncoded
//    @POST("api/searchAi")
//    Observable<BaseResult2<List<AiExplain>>> reqAiSearchList(@Field("name") String name, @Field("english") String english);
//
//    // 项目收藏 projectCollect type 检验是否收藏（传输1）
//    @FormUrlEncoded
//    @POST("api/projectCollect")
//    Observable<BaseResult2<List>> reqProjectCollect(@Header("Authorization") String Authorization
//            , @Field("type") String type, @Field("id") String id);
//
//    // 套餐收藏 /api/comboCollect
//    @FormUrlEncoded
//    @POST("api/comboCollect")
//    Observable<BaseResult2<List>> reqSetCollect(@Header("Authorization") String Authorization
//            , @Field("type") String type, @Field("id") String id);
//
//    // 我的收藏 /api/getUserCollect  我的-收藏  预约下单-选择收藏项目 同用这一个接口
//    @GET("api/getUserCollect")
//    Observable<BaseResult2<List<ItemSet>>> reqMyCollectList(@Header("Authorization") String Authorization
//            , @Query("page") int page, @Query("pageSize") int pageSize);
//
//    // 根据套餐查询其中的项目 http://yunjianyan.ilicloud.cn/api/getComboEctype
//    @FormUrlEncoded
//    @POST("api/getComboEctype")
//    Observable<BaseResult2<List<ItemSet>>> reqItemInSetList(@Field("id") String id);
//
//    // 机构流水 /api/getMyFlowing 支付类型（1微信,2支付宝,3银联支付,4余额支付）
//    @GET("api/getMyFlowing")
//    Observable<BaseResult2<List<AgentFlow>>> reqAgentFlowList(@Header("Authorization") String Authorization
//            , @Query("page") int page, @Query("pageSize") int pageSize, @Query("org_id") String org_id
//            , @Query("expert") String expert, @Query("pay_type") String pay_type);
//
//    // 获取套餐分类 /api/getComboTypeList
//    @GET("api/getComboTypeList")
//    Observable<BaseResult2<List<SetType>>> reqSetTypeList(@Query("id") String id);
//
//    // 获取套餐列表 ai-套餐 /api/getComboList
//    @GET("api/getComboList")
//    Observable<BaseResult2<List<ItemSet>>> reqSetList(@Query("type_id") String type_id
//            , @Query("page") int page, @Query("pageSize") int pageSize);
//
//    // 获取订单详情 http://yunjianyan.ilicloud.cn/api/getOrderInfo
//    @FormUrlEncoded
//    @POST("api/getOrderInfo")
//    Observable<BaseResult2<OrderDetail>> reqOrderDetail(@Header("Authorization") String Authorization, @Field("id") String id);
//
//    // 取消预约 取消订单 /api/cancelTestOrder
//    @PUT("api/cancelTestOrder")
//    Observable<BaseResult2> reqCancelOrder(@Header("Authorization") String Authorization, @Query("id") String id);
//
//    // 创建商城订单 /api/createShopOrder
//    @FormUrlEncoded
//    @POST("api/createShopOrder")
//    Observable<BaseResult2<OrderResult>> reqCreateProductOrder(@Header("Authorization") String Authorization
//            , @Field("good_id") String good_id, @Field("price") String price, @Field("username") String username
//            , @Field("phone") String phone, @Field("area") String area
//            , @Field("address") String address, @Field("count") String count, @Field("score") int useScore);
//
//    // 报告详情 http://yunjianyan.ilicloud.cn/api/getReportInfo
//    @FormUrlEncoded
//    @POST("api/getReportInfo")
//    Observable<BaseResult2<List<ReportDetail>>> reqReportDetail(@Header("Authorization") String Authorization, @Field("order_id") String order_id);
//
//    // 创建报告解读 /api/createReadOrder
//    @FormUrlEncoded
//    @POST("api/createReadOrder")
//    Observable<BaseResult2<List<OrderResult>>> reqCreateExpertOrder(@Header("Authorization") String Authorization
//            , @Field("expert") String expert, @Field("height") String height, @Field("weight") String weight
//            , @Field("heart") String heart, @Field("temperature") String temperature, @Field("blood") String blood
//            , @Field("family") String family, @Field("treatment") String treatment, @Field("drug") String drug
//            , @Field("allergy") String allergy, @Field("text") String text, @Field("order_id") String order_id
//            , @Field("sid") String sid, @Field("image[]") List<String> uploadImageList);
//
//    // 获取专家列表 ydt.lstranger.cn/api/getExpert
//    @GET("api/getExpert")
//    Observable<BaseResult2<List<ExpertUser>>> reqExpertList(@Header("Authorization") String Authorization, @Query("page") int page, @Query("pageSize") int pageSize);
//
//    // 获取pdf列表 http://yunjianyan.ilicloud.cn/api/getPDF
//    @FormUrlEncoded
//    @POST("api/getPDF")
//    Observable<BaseResult2<List<Pdf>>> reqPdfList(@Header("Authorization") String Authorization, @Field("order_id") String order_id);
//
//    // 校验验证码 http://yunjianyan.ilicloud.cn/api/checkCode
//    @FormUrlEncoded
//    @POST("api/checkCode")
//    Observable<BaseResult2> reqAuthSmsCode(@Field("phone") String phone, @Field("code") String code);
//
//    @GET("api/getSetting")
//    Observable<BaseResult2<SettingData>> getSetting(@Header("Authorization") String Authorization);
//
//    // 获取系统设置信息 http://yunjianyan.ilicloud.cn/api/getSettings
//    @POST("api/getSettings")
//    Observable<BaseResult2<List<SettingsData>>> getSettings(@Header("Authorization") String Authorization);
//
//    @POST("api/getSettings")
//    Observable<BaseResult2<List<SettingsData>>> getSettings1();
//
//    @POST("api/getProportion")
//    Observable<BaseResult2<List<ProportionData>>> getProportion(@Header("Authorization") String Authorization);
//
//    @FormUrlEncoded
//    @POST("api/getDiscount")
//    Observable<BaseResult2<List<PostCouponData>>> getPostCoupon(@Header("Authorization") String Authorization, @Field("time") String orderTime);
//
//    @FormUrlEncoded
//    @POST("api/delRefund")
//    Observable<BaseResult2> cancelMyOrder(@Header("Authorization") String Authorization, @Field("order_id") String orderId);
//
//    @FormUrlEncoded
//    @POST("api/addRefund")
//    Observable<BaseResult2> refundMyOrder(@Header("Authorization") String Authorization, @Field("order_id") String orderId);
//
//    @FormUrlEncoded
//    @POST("api/editRefund")
//    Observable<BaseResult2> refundMyOrderItem(@Header("Authorization") String Authorization, @Field("order_id") String orderId, @Field("id") String id);
//
//    @FormUrlEncoded
//    @POST("api/searchPatient")
//    Observable<BaseResult2<List<Patient>>> searchPatient(@Header("Authorization") String Authorization, @Field("phone") String phone, @Field("name") String name);
//
//    @GET("api/testOrderList")
//    Observable<BaseResult2<List<TestHistory>>> getTestHistory(@Header("Authorization") String Authorization, @Query("page") int page, @Query("pageSize") int pageSize,
//                                                              @Query("patient_id") int patientId);
//
//    @GET("api/getReadOrderDetail")
//    Observable<BaseResult2<List<RequestExpertDetails>>> getRequestExpertDetails(@Header("Authorization") String Authorization, @Query("order_id") String orderId);
//
//    @POST("api/newMsg")
//    Observable<BaseResult2<List<UnreadData>>> getUnreadMsg(@Header("Authorization") String Authorization);
//
//    @POST("api/editMsg")
//    Observable<BaseResult2> tagAllMsgRead(@Header("Authorization") String Authorization);
//
//    @FormUrlEncoded
//    @POST("api/editMsg")
//    Observable<BaseResult2> tagMsgRead(@Header("Authorization") String Authorization, @Field("id") String msgId);
//
//    @FormUrlEncoded
//    @POST("api/delMsg")
//    Observable<BaseResult2> delMsg(@Header("Authorization") String Authorization, @Field("id[]") String[] msgIdArray);
//
//    @FormUrlEncoded
//    @POST("api/editOrder")
//    Observable<BaseResult2> editOrder(@Header("Authorization") String Authorization, @Field("samp_time") String sampTime, @Field("diagnose") String dianose, @Field("remark") String remark, @Field("id") String orderId);
//
//    @GET("api/getexReportInfo")
//    Observable<BaseResult2<ExReportDetailsResult>> getReportDetail(@Header("Authorization") String Authorization, @Query("order_id") String orderId);
//
//    @FormUrlEncoded
//    @POST("api/getAiInfo")
//    Observable<BaseResult2<List<AiExplain>>> getAiReportDetails(@Header("Authorization") String Authorization, @Field("order_id") String orderId);
//
//    @FormUrlEncoded
//    @POST("api/editPatient")
//    Observable<BaseResult2> editPatient(@Header("Authorization") String Authorization, @Field("name") String name, @Field("phone") String phone, @Field("sex") String sex,
//                                        @Field("birth") String birth, @Field("picture") String picture, @Field("identity") String identity, @Field("blood") String blood,
//                                        @Field("medical") String medical, @Field("remark") String remark, @Field("id") String id);
//
//    @GET("api/getDoctorDetail")
//    Observable<BaseResult2<Doctor>> getDoctorDetail(@Header("Authorization") String Authorization, @Query("doctor_id") String doctorId);
//
//    @FormUrlEncoded
//    @PUT("api/saveDoctor")
//    Observable<BaseResult2> editDoctor(@Header("Authorization") String Authorization, @Field("doctor_id") String id, @Field("picture") String picture, @Field("password") String password
//            , @Field("name") String name, @Field("sex") String sex, @Field("identity") String identity
//            , @Field("phone") String phone, @Field("year") String year);
//
//    @FormUrlEncoded
//    @PUT("api/saveDoctor")
//    Observable<BaseResult2> editMyInfo(@Header("Authorization") String Authorization, @Field("doctor_id") String id, @Field("picture") String picture,
//                                       @Field("name") String name, @Field("sex") String sex, @Field("year") String year);
//
//    @GET("api/getClassify")
//    Observable<BaseResult2<List<CategoryItem>>> getShopCategory(@Header("Authorization") String Authorization);
//
//    @GET("api/getGoodsPriceList")
//    Observable<BaseResult2<List<PriceRangeOption>>> getPriceRange(@Header("Authorization") String Authorization);
//
//    @GET("api/getShopOrderSetting")
//    Observable<BaseResult2<List<ShopSettings>>> getShopOrderSetting(@Header("Authorization") String Authorization);
//
//    @GET("api/getShopOrderDetail")
//    Observable<BaseResult2<ProductOrderDetails>> getProductOrderDetails(@Header("Authorization") String Authorization, @Query("id") String id);
//
//    @FormUrlEncoded
//    @PUT("api/shopOrderHandle")
//    Observable<BaseResult2> cancelProductOrder(@Header("Authorization") String Authorization, @Field("id") int id, @Field("type") int type);
//
//    @FormUrlEncoded
//    @PUT("api/saveShopOrder")
//    Observable<BaseResult2> editProductOrder(@Header("Authorization") String Authorization, @Field("id") int id, @Field("username") String username,
//                                             @Field("phone") String phone, @Field("area") String area, @Field("address") String address);

    // 获取全部分类
    @FormUrlEncoded
    @POST("addons/unishop/category/all")
    Observable<BaseResult2<List<CategoryEntity>>> requestCategoryData(@Header("token") String token, @Field("no") String no);

    // 获取全部分类
    @FormUrlEncoded
    @POST("addons/unishop/product/lists")
    Observable<BaseResult2<List<ProductEntity>>> requestProductList(@Header("token") String token, @Field("fid") String fid, @Field("sid") String sid, @Field("page") int page);


    // 获取购物车列表
    @POST("addons/unishop/cart/index")
    Observable<BaseResult2<List<CarProductEntity>>> requestCarProducts(@Header("token") String token);

    // 首页
    @FormUrlEncoded
    @POST("addons/unishop/product/index")
    Observable<BaseResult2<List<ProductEntity>>> requestStoreHome(@Header("token") String token, @Field("page") int page, @Field("pagesize") int pagesize);


    // 搜索页
    @FormUrlEncoded
    @POST("addons/unishop/product/search")
    Observable<BaseResult2<List<ProductEntity>>> searchProduct(@Header("token") String token, @Field("search") String search);


    // 获取推荐商品
    @POST("addons/unishop/cart/recommend")
    Observable<BaseResult2<List<ProductEntity>>> requestRecommenedProductList(@Header("token") String token);

    // 添加商品
    @FormUrlEncoded
    @POST("addons/unishop/cart/add")
    Observable<BaseResult2<String>> addProduct(@Header("token") String token, @Field("id") String id);

    // 删除商品
    @FormUrlEncoded
    @POST("addons/unishop/cart/delete")
    Observable<BaseResult2<String>> deleteProduct(@Header("token") String token, @Field("id") String id);

    // 修改商品数量
    @FormUrlEncoded
    @POST("addons/unishop/cart/number_change")
    Observable<BaseResult2<String>> alterProductNum(@Header("token") String token, @Field("id") String id, @Field("number") int number);

    // 修改选中状态
    @FormUrlEncoded
    @POST("addons/unishop/cart/choose_change")
    Observable<BaseResult2<String>> alterProductStatus(@Header("token") String token, @Field("trueArr") String trueArr, @Field("falseArr") String falseArr);

    // 下单
    @FormUrlEncoded
    @POST("addons/unishop/order/submit")
    Observable<BaseResult2<OrderEntity>> requestGoOrder(@Header("token") String token, @Field("product_id") String product_id, @Field("number") String number,
                                                        @Field("spec") String spec, @Field("city_id") int city_id,
                                                        @Field("address_id") int address_id,@Field("delivery_id") int delivery_id,@Field("remark") String remark
    );

    @FormUrlEncoded
    @POST("addons/unishop/pay/alipay")
    Observable<BaseResult2<String>> alipay(@Header("token") String token, @Field("order_id") String order_id);

    @FormUrlEncoded
    @POST("addons/unishop/pay/unify")
    Observable<BaseResult2<WxPayEntity>> wxpay(@Header("token") String token, @Field("order_id") String order_id);

    @FormUrlEncoded
    @POST("addons/unishop/product/detail")
    Observable<BaseResult2<ProductDetailEntity>> productDetail(@Header("token") String token, @Field("id") String id);

    // 获取直播课程分类
    @POST("api/live/getCategory")
    Observable<BaseResult2<List<CourseCategoryEntity>>> requestCourseCategory(@Header("token") String token);

    // 获取直播列表
    @FormUrlEncoded
    @POST("api/live/getList")
    Observable<BaseResult2<CourseList>> requestCourseList(@Header("token") String token, @Field("live_category_id") int live_category_id);

}